BLOG

Record, summarize, and improve.

AI compiler Runtime

AI 编译器 runtime 的主要作用

1.执行调度

  • 管理模型中各个算子(操作)的执行顺序。
  • 根据依赖关系决定哪些可以并行执行、哪些需要先执行。

2.内存管理

  • 动态申请和释放内存,包括模型的权重、输入输出张量、中间变量等。
  • 做 memory reuse(内存复用)以提升效率。

3.硬件抽象

  • 跨平台支持:无论是 CPU、GPU、NPU 还是 FPGA,runtime 负责调用具体的底层 API(比如 CUDA、Metal、OpenCL、DirectML)。
  • 屏蔽硬件细节,让模型开发者不用关心具体的芯片差异。

4.操作符实现与调用

  • 封装并调用优化后的算子库,如 cuDNN、MKL-DNN、ACL 等。
  • 某些 AI 编译器的 runtime 还会动态选择最优实现版本(称为算子融合、调度器等)。

5.输入输出处理

  • 管理模型的输入和输出 tensor。
  • 与外部接口进行数据交换(如 C++、Python 接口,或和 Web 前端通信)。

6.调试与日志

  • 提供调试接口,比如中间 tensor 的 dump、性能 profiling、错误信息记录等。

7.模型部署支持

  • 支持模型热加载、版本切换、batch 管理、异步推理、多线程等部署场景。